﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Data.SqlServerCe;
using System.Windows.Forms;

namespace GesPro
{
    /// <summary>
    /// Classe permettant la vérification du niveau d'accès.
    /// </summary>
    class Acces
    {
        Connexion boiteConnexion = new Connexion();
        
        private string sUtilisateur;
        private string sMdp;
        private bool accesPermis;
        private int niveau;
        private Employe ficheUtilisateur;

        /// <summary>
        /// Fiche de l'utilisateur vérifié.
        /// </summary>
        public Employe FicheUtilisateur
        {
            get
            {
                return ficheUtilisateur;
            }
            set
            {
                ficheUtilisateur = value;
            }
        }
        /// <summary>
        /// Accès permis.
        /// </summary>
        public bool AccesPermis
        {
            get
            {
                return accesPermis;
            }
            set
            {
                accesPermis = value;
            }
        }
        /// <summary>
        /// Niveau d'accès permis.
        /// </summary>
        public int Niveau
        {
            get
            {
                return niveau;
            }
            set
            {
                niveau = value;
            }
        }


        /// <summary>
        /// Authentifier un utilisateur via l'interface de connexion. les informations de connexions sont vérifié auprès de la liste d'employé pour trouver une correspondance.
        /// </summary>
        /// <param name="ListeEmployes">Liste des employés enregistrés dans le logiciel</param>
        /// <returns>Permission d'accès (Vrai = permis ; Faux = non-permis)</returns>
        public bool Authentifier(List<Employe> ListeEmployes)
        {
            boiteConnexion.ShowDialog();
            sUtilisateur =  boiteConnexion.Utilisateur;
            sMdp = boiteConnexion.Mdp;
            niveau = 4;
            foreach (Employe employe in ListeEmployes)
            {
                if (employe.Utilisateur.ToUpper().Trim() == sUtilisateur.ToUpper().Trim())
                {
                    if (employe.Mdp.ToUpper().Trim() == sMdp.ToUpper().Trim())
                    {
                        accesPermis = true;
                        niveau = employe.Acces;
                        ficheUtilisateur = employe;
                        break;
                    }
                    else
                    {
                        MessageBox.Show("Mot de passe invalide");
                        break;
                    }
                   
                }                   

            }
            return accesPermis;

        }


    }
}
